package com.authservice.authservice.service;

import com.authservice.authservice.domain.dto.AuthCodeDTO;
import com.authservice.authservice.domain.dto.UpdatePasswordDTO;
import com.commonmodule.commonmodule.util.R;

/**
 * @author zxb
 * @version 1.0
 * @date 2025-04-07 11:07
 */
public interface AuthService {

    /**
     * 账号密码登录
     * @param account
     * @param password
     * @return
     */
    R<String> login(String account, String password);

    /**
     * 退出登录
     * @param token
     * @return
     */
    R<?> exit(String token);

    /**
     * 修改密码
     * @param updatePasswordDTO
     * @return
     */
    R<?> updatePassword(UpdatePasswordDTO updatePasswordDTO);

    /**
     * 发送验证码
     * @param phone
     * @param type
     * @return
     */
    R<?> note(String phone, Integer type);

    /**
     * 注册
     * @param authCodeDTO
     * @return
     */
    R<?> enroll(AuthCodeDTO authCodeDTO);

    /**
     * 验证码登录
     * @param authCodeDTO
     * @return
     */
    R<?> authCodeLogin(AuthCodeDTO authCodeDTO);

}
